import router from "@/router"
import { usebreadCrumb } from '@/store/breadCrumb'
import { usePermission } from "@/store/permission"
import NProgress from 'nprogress'
import * as api from "@/api/permission"
// 前置路由钩子 用于拦截用户登录
router.beforeEach(async (to, from) => {
    // 打开进度条
    NProgress.start()
    let permissionStore = usePermission()

    // 判断用户是否有本地 会话存储token，有就放行，没有跳转到登录页
    let token = sessionStorage.getItem("data")
    if (!token) {
        if (to.path !== "/login") {
            return {
                path: "/login"
            }
        }
    } else {
        // 调用 Store中的方法 发起异步请求
        // 如果 permissionStore.menulist 长度为 0 那么就有发起请求
        if (permissionStore.menulist.length == 0) {
            await permissionStore.fetch_menulist()
            // 废弃要进入的路由，重新进入动态添加的路由
            return {
                ...to
            }
        }
    }
})

// 后置路由钩子 处理面包屑
router.afterEach((to, from) => {
    // 关闭进度条
    NProgress.done()
    let breadCrumbStore = usebreadCrumb()
    breadCrumbStore.$patch(state => {
        state.datas = to.matched
    })
})

